今天的主題是Yolo v2,不過所找到的資料圖片可能比較不好理解,有更好的再更新,Yolo v2就是v1的升級版,v2的改變如下:
Batch Normalization(BN) : 在卷積層中添加了Batch Normalization,BN已經成為一些模型中的標準配備,由於BN可以控制輸入的平均值以及方差在一定範圍內,並提高了模型的訓練速度。
Convolutional With Anchor Boxes : 首先原本v1的輸入圖像是448x448,v2則改成416x416,因為v2希望卷積特徵圖輸出是奇數乘以奇數,這樣才會產生一個center cell,由於大的物體通常是在圖片中央,便可以只用這一個center cell預測,而416x416的圖像會輸出成13x13的特徵圖。
v2引用了Faster R-CNN中的Anchor Box,並將v1中的全連接層移除(如上圖所示),由於是卷積的型態,使特徵圖保留了位置訊息,在v1中,將圖像分成7x7的區域,並且每個格子中預測2個物件框,而v2每格預測5個物件框。
Dimension Clusters : 在Faster R-CNN中,Anchor Box的大小和比例是事先設定的,並在訓練過程中調整,在Yolo v2中,則利用了k-means演算法得到Anchor Box的大小比例。
Direct Location Prediction : 而在v2中所預測的物件框也和v1不太相同,如下圖所示:
v2預測出t~x~,t~y~,t~w~,t~h~,還有一個不在圖中的t~o~,並利用預測出的結果,經過計算,再生成物件框,t~x~、t~y~為相對該格左上角的x,y,另外b~x~、b~y~為預測之物件框的中心座標,b~w~、b~h~為預測之物件框的長寬(藍色部分皆為計算出的物件框),並且透過$\sigma$來限制t~x~和t~y~,使得模型較為穩定,t~o~則可以想成是v1中的置信度。